package gob.pgr.servlet;

import gob.pgr.util.PGRUtil;
import gob.pgr.ws.SalidaSolvencia;
import gob.pgr.ws.WSSolvenciaService;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

/**
 * Servlet implementation class SolvenciasPGRServlet
 */
@WebServlet("/SolvenciasPGRServlet")
public class SolvenciasPGRServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private String endpoint;

	@Override
	public void init() throws ServletException {
		super.init();
		endpoint = getServletContext().getInitParameter("web.service.solvencias.pgr");
	}

	/**
     * @see HttpServlet#HttpServlet()
     */
    public SolvenciasPGRServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String usuario = StringUtils.trimToEmpty(request.getParameter("usuario"));
		String clave = StringUtils.trimToEmpty(request.getParameter("clave"));
		String dui = StringUtils.trimToEmpty(request.getParameter("dui"));
		JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
		jaxWsProxyFactoryBean.setServiceClass(WSSolvenciaService.class);
		jaxWsProxyFactoryBean.setAddress(endpoint);
		WSSolvenciaService wsSolvenciaService = (WSSolvenciaService) jaxWsProxyFactoryBean.create();
		String xml = wsSolvenciaService.comprobarSolvenciaDui(usuario, clave, dui);
		SalidaSolvencia salida = (SalidaSolvencia) PGRUtil.leerXml(xml, SalidaSolvencia.class);
		String url = "/default.jsp";
		if (salida != null) {
			url += "?codigoRetorno=" + StringUtils.trimToEmpty(salida.getCodigoRetorno());
			url += "&mensajeRetorno=" + StringUtils.trimToEmpty(salida.getMensajeRetorno());
			url += "&estado=" + StringUtils.trimToEmpty(salida.getEstado());
			url += "&usuario=" + StringUtils.trimToEmpty(usuario);
			url += "&clave=" + StringUtils.trimToEmpty(clave);
			url += "&dui=" + StringUtils.trimToEmpty(dui);
		}
		RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher(url);
		requestDispatcher.forward(request, response);
		
	}

}
